package com.taobao.api.domain;

import java.util.Date;
import java.util.List;

import com.taobao.api.TaobaoObject;
import com.taobao.api.internal.mapping.ApiField;
import com.taobao.api.internal.mapping.ApiListField;

/**
 * 旅游商品结构。
 *
 * @author auto create
 * @since 1.0, null
 */
public class TravelItems extends TaobaoObject {

	private static final long serialVersionUID = 7717722562488267591L;

	/**
	 * 商品发布后的状态。onsale出售中，instock仓库中。
	 */
	@ApiField("approve_status")
	private String approveStatus;

	/**
	 * 商城返点比例，为5的倍数，最低0.5%。[0,500]
	 */
	@ApiField("auction_point")
	private Long auctionPoint;

	/**
	 * 商品所属叶子类目ID。
	 */
	@ApiField("cid")
	private Long cid;

	/**
	 * 商品发布时间。
	 */
	@ApiField("created")
	private Date created;

	/**
	 * 下架时间，未使用（格式：yyyy-MM-dd HH:mm:ss）。
	 */
	@ApiField("delist_time")
	private Date delistTime;

	/**
	 * 商品描述，字数要大于5个字符，小于50000个字符。
	 */
	@ApiField("desc")
	private String desc;

	/**
	 * 商品详情url。
	 */
	@ApiField("detail_url")
	private String detailUrl;

	/**
	 * 最晚成团提前天数，最小0天，最大为300天，不填默认为0天。
	 */
	@ApiField("duration")
	private Long duration;

	/**
	 * 费用包含，不超过1500个字符。
	 */
	@ApiField("fee_include")
	private String feeInclude;

	/**
	 * 费用不包，不超过1500个字符。
	 */
	@ApiField("fee_not_include")
	private String feeNotInclude;

	/**
	 * 运费承担方式,seller（卖家承担），buyer（买家承担）。
	 */
	@ApiField("freight_payer")
	private String freightPayer;

	/**
	 * 集合地，不超过30个字符。
	 */
	@ApiField("gathering_place")
	private String gatheringPlace;

	/**
	 * 会员打折 true/false。
	 */
	@ApiField("has_discount")
	private Boolean hasDiscount;

	/**
	 * 是否有发票,true/false。
	 */
	@ApiField("has_invoice")
	private Boolean hasInvoice;

	/**
	 * 是否有橱窗true/false。
	 */
	@ApiField("has_showcase")
	private Boolean hasShowcase;

	/**
	 * 用户自行输入的类目属性ID串。结构："pid1,pid2,pid3"，如："2000"（表示品牌） 注：通常一个类目下用户可输入的关键属性不超过1个。在度假线路类目中，该属性ID为“自由行包含元素”或“一日游包含元素”属性ID。
	 */
	@ApiField("input_pids")
	private String inputPids;

	/**
	 * 用户自行输入的子属性名和属性值，如“自定义自由行包含元素”。
	 */
	@ApiField("input_str")
	private String inputStr;

	/**
	 * 是否“铁定出游”商品。
	 */
	@ApiField("is_tdcy")
	private Boolean isTdcy;

	/**
	 * 是否定时上架商品。
	 */
	@ApiField("is_timing")
	private Boolean isTiming;

	/**
	 * 商品数字ID。
	 */
	@ApiField("item_id")
	private Long itemId;

	/**
	 * 商品图片列表(包括主图)。
	 */
	@ApiListField("item_imgs")
	@ApiField("travel_items_img")
	private List<TravelItemsImg> itemImgs;

	/**
	 * 上架时间,未使用（格式：yyyy-MM-dd HH:mm:ss）。
	 */
	@ApiField("list_time")
	private Date listTime;

	/**
	 * 电子凭证信息。
	 */
	@ApiField("locality_life")
	private TravelItemsLocalityLife localityLife;

	/**
	 * 宝贝所在地，格式为(省份:城市)。
	 */
	@ApiField("location")
	private String location;

	/**
	 * 最多橱窗数。
	 */
	@ApiField("max_showcase")
	private Long maxShowcase;

	/**
	 * 商品修改时间（格式：yyyy-MM-dd HH:mm:ss）。
	 */
	@ApiField("modified")
	private Date modified;

	/**
	 * 卖家昵称。
	 */
	@ApiField("nick")
	private String nick;

	/**
	 * 商品数量。
	 */
	@ApiField("num")
	private Long num;

	/**
	 * 预定须知，不超过1500个字符。
	 */
	@ApiField("order_info")
	private String orderInfo;

	/**
	 * 商家编码。
	 */
	@ApiField("outer_id")
	private String outerId;

	/**
	 * 自费项目，不超过1500个字符。
	 */
	@ApiField("own_expense")
	private String ownExpense;

	/**
	 * 商品主图片地址。
	 */
	@ApiField("pic_url")
	private String picUrl;

	/**
	 * 商品价格，格式：500；单位：分；精确到：分。
	 */
	@ApiField("price")
	private Long price;

	/**
	 * 商品属性列表。格式为：pid:vid;pid:vid。例如度假线路商品，那么这里就需要填写：出发地属性id:城市id;目的地市属性id:目的地市id;……
	 */
	@ApiField("props")
	private String props;

	/**
	 * 商品属性名称。标识着props内容里面的pid和vid所对应的名称。格式为：pid1:vid1:pid_name1:vid_name1;pid2:vid2:pid_name2:vid_name2……
	 */
	@ApiField("props_name")
	private String propsName;

	/**
	 * 退改规定，不超过1500个字符。
	 */
	@ApiField("refund_regulation")
	private String refundRegulation;

	/**
	 * 秒杀商品类型。
	 */
	@ApiField("second_kill")
	private String secondKill;

	/**
	 * 商品所属的店铺内卖家自定义类目列表，多个以“,”分割。
	 */
	@ApiField("seller_cids")
	private String sellerCids;

	/**
	 * 购物店信息，不超过1500个字符。
	 */
	@ApiField("shoping_info")
	private String shopingInfo;

	/**
	 * 商品Sku列表。
	 */
	@ApiListField("skus")
	@ApiField("travel_items_sku")
	private List<TravelItemsSku> skus;

	/**
	 * 商品开始出售时间。
	 */
	@ApiField("start")
	private Date start;

	/**
	 * 商品是否支持拍下减库存:1支持;2取消支持(付款减库存)。
	 */
	@ApiField("sub_stock")
	private Long subStock;

	/**
	 * 商品标题，能超过60字符，一个汉字占2个字符。
	 */
	@ApiField("title")
	private String title;

	/**
	 * 套餐价格日历信息。
	 */
	@ApiListField("travel_items_combos")
	@ApiField("travel_items_combo")
	private List<TravelItemsCombo> travelItemsCombos;

	/**
	 * 商品类型(fixed:一口价;auction:拍卖)注：取消团购。
	 */
	@ApiField("type")
	private String type;

	/**
	 * 已被使用的橱窗数。
	 */
	@ApiField("used_showcase")
	private Long usedShowcase;

	/**
	 * 商品是否违规，违规：true , 不违规：false。
	 */
	@ApiField("violation")
	private Boolean violation;

	/**
	 * 不带html标签的desc文本信息，该字段只在taobao.item.get接口中返回。
	 */
	@ApiField("wap_desc")
	private String wapDesc;

	/**
	 * 适合wap应用的商品详情url。
	 */
	@ApiField("wap_detail_url")
	private String wapDetailUrl;

	public String getApproveStatus() {
		return this.approveStatus;
	}
	public void setApproveStatus(String approveStatus) {
		this.approveStatus = approveStatus;
	}

	public Long getAuctionPoint() {
		return this.auctionPoint;
	}
	public void setAuctionPoint(Long auctionPoint) {
		this.auctionPoint = auctionPoint;
	}

	public Long getCid() {
		return this.cid;
	}
	public void setCid(Long cid) {
		this.cid = cid;
	}

	public Date getCreated() {
		return this.created;
	}
	public void setCreated(Date created) {
		this.created = created;
	}

	public Date getDelistTime() {
		return this.delistTime;
	}
	public void setDelistTime(Date delistTime) {
		this.delistTime = delistTime;
	}

	public String getDesc() {
		return this.desc;
	}
	public void setDesc(String desc) {
		this.desc = desc;
	}

	public String getDetailUrl() {
		return this.detailUrl;
	}
	public void setDetailUrl(String detailUrl) {
		this.detailUrl = detailUrl;
	}

	public Long getDuration() {
		return this.duration;
	}
	public void setDuration(Long duration) {
		this.duration = duration;
	}

	public String getFeeInclude() {
		return this.feeInclude;
	}
	public void setFeeInclude(String feeInclude) {
		this.feeInclude = feeInclude;
	}

	public String getFeeNotInclude() {
		return this.feeNotInclude;
	}
	public void setFeeNotInclude(String feeNotInclude) {
		this.feeNotInclude = feeNotInclude;
	}

	public String getFreightPayer() {
		return this.freightPayer;
	}
	public void setFreightPayer(String freightPayer) {
		this.freightPayer = freightPayer;
	}

	public String getGatheringPlace() {
		return this.gatheringPlace;
	}
	public void setGatheringPlace(String gatheringPlace) {
		this.gatheringPlace = gatheringPlace;
	}

	public Boolean getHasDiscount() {
		return this.hasDiscount;
	}
	public void setHasDiscount(Boolean hasDiscount) {
		this.hasDiscount = hasDiscount;
	}

	public Boolean getHasInvoice() {
		return this.hasInvoice;
	}
	public void setHasInvoice(Boolean hasInvoice) {
		this.hasInvoice = hasInvoice;
	}

	public Boolean getHasShowcase() {
		return this.hasShowcase;
	}
	public void setHasShowcase(Boolean hasShowcase) {
		this.hasShowcase = hasShowcase;
	}

	public String getInputPids() {
		return this.inputPids;
	}
	public void setInputPids(String inputPids) {
		this.inputPids = inputPids;
	}

	public String getInputStr() {
		return this.inputStr;
	}
	public void setInputStr(String inputStr) {
		this.inputStr = inputStr;
	}

	public Boolean getIsTdcy() {
		return this.isTdcy;
	}
	public void setIsTdcy(Boolean isTdcy) {
		this.isTdcy = isTdcy;
	}

	public Boolean getIsTiming() {
		return this.isTiming;
	}
	public void setIsTiming(Boolean isTiming) {
		this.isTiming = isTiming;
	}

	public Long getItemId() {
		return this.itemId;
	}
	public void setItemId(Long itemId) {
		this.itemId = itemId;
	}

	public List<TravelItemsImg> getItemImgs() {
		return this.itemImgs;
	}
	public void setItemImgs(List<TravelItemsImg> itemImgs) {
		this.itemImgs = itemImgs;
	}

	public Date getListTime() {
		return this.listTime;
	}
	public void setListTime(Date listTime) {
		this.listTime = listTime;
	}

	public TravelItemsLocalityLife getLocalityLife() {
		return this.localityLife;
	}
	public void setLocalityLife(TravelItemsLocalityLife localityLife) {
		this.localityLife = localityLife;
	}

	public String getLocation() {
		return this.location;
	}
	public void setLocation(String location) {
		this.location = location;
	}

	public Long getMaxShowcase() {
		return this.maxShowcase;
	}
	public void setMaxShowcase(Long maxShowcase) {
		this.maxShowcase = maxShowcase;
	}

	public Date getModified() {
		return this.modified;
	}
	public void setModified(Date modified) {
		this.modified = modified;
	}

	public String getNick() {
		return this.nick;
	}
	public void setNick(String nick) {
		this.nick = nick;
	}

	public Long getNum() {
		return this.num;
	}
	public void setNum(Long num) {
		this.num = num;
	}

	public String getOrderInfo() {
		return this.orderInfo;
	}
	public void setOrderInfo(String orderInfo) {
		this.orderInfo = orderInfo;
	}

	public String getOuterId() {
		return this.outerId;
	}
	public void setOuterId(String outerId) {
		this.outerId = outerId;
	}

	public String getOwnExpense() {
		return this.ownExpense;
	}
	public void setOwnExpense(String ownExpense) {
		this.ownExpense = ownExpense;
	}

	public String getPicUrl() {
		return this.picUrl;
	}
	public void setPicUrl(String picUrl) {
		this.picUrl = picUrl;
	}

	public Long getPrice() {
		return this.price;
	}
	public void setPrice(Long price) {
		this.price = price;
	}

	public String getProps() {
		return this.props;
	}
	public void setProps(String props) {
		this.props = props;
	}

	public String getPropsName() {
		return this.propsName;
	}
	public void setPropsName(String propsName) {
		this.propsName = propsName;
	}

	public String getRefundRegulation() {
		return this.refundRegulation;
	}
	public void setRefundRegulation(String refundRegulation) {
		this.refundRegulation = refundRegulation;
	}

	public String getSecondKill() {
		return this.secondKill;
	}
	public void setSecondKill(String secondKill) {
		this.secondKill = secondKill;
	}

	public String getSellerCids() {
		return this.sellerCids;
	}
	public void setSellerCids(String sellerCids) {
		this.sellerCids = sellerCids;
	}

	public String getShopingInfo() {
		return this.shopingInfo;
	}
	public void setShopingInfo(String shopingInfo) {
		this.shopingInfo = shopingInfo;
	}

	public List<TravelItemsSku> getSkus() {
		return this.skus;
	}
	public void setSkus(List<TravelItemsSku> skus) {
		this.skus = skus;
	}

	public Date getStart() {
		return this.start;
	}
	public void setStart(Date start) {
		this.start = start;
	}

	public Long getSubStock() {
		return this.subStock;
	}
	public void setSubStock(Long subStock) {
		this.subStock = subStock;
	}

	public String getTitle() {
		return this.title;
	}
	public void setTitle(String title) {
		this.title = title;
	}

	public List<TravelItemsCombo> getTravelItemsCombos() {
		return this.travelItemsCombos;
	}
	public void setTravelItemsCombos(List<TravelItemsCombo> travelItemsCombos) {
		this.travelItemsCombos = travelItemsCombos;
	}

	public String getType() {
		return this.type;
	}
	public void setType(String type) {
		this.type = type;
	}

	public Long getUsedShowcase() {
		return this.usedShowcase;
	}
	public void setUsedShowcase(Long usedShowcase) {
		this.usedShowcase = usedShowcase;
	}

	public Boolean getViolation() {
		return this.violation;
	}
	public void setViolation(Boolean violation) {
		this.violation = violation;
	}

	public String getWapDesc() {
		return this.wapDesc;
	}
	public void setWapDesc(String wapDesc) {
		this.wapDesc = wapDesc;
	}

	public String getWapDetailUrl() {
		return this.wapDetailUrl;
	}
	public void setWapDetailUrl(String wapDetailUrl) {
		this.wapDetailUrl = wapDetailUrl;
	}

}
